home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
compuserve-file-archive
/
05 Programming
/
ACE1.SFX
/
doc1.txt
< prev
next >
Wrap
Text File
|
1994-05-23
|
28KB
|
522 lines
┴├┼-128/64 ╒╙┼╥'╙ ╟╒╔─┼ FOR ╥ELEASE #10 [═ARCH 14, 1994]
------------------------------------------------------------------------------
1. ╔╬╘╥╧─╒├╘╔╧╬
┴├┼ IS A PROGRAM FOR THE ├OMMODORE 128 AND ├OMMODORE 64 THAT PROVIDES A
╒NIX-LIKE COMMAND SHELL ENVIRONMENT. ╔T IS STILL IN THE DEVELOPMENT STAGE,
BUT ENOUGH OF IT IS COMPLETE TO BE USEFUL. ┬╘╫, "┴├┼" MEANS "┴DVANCED
├OMPUTING ┼NVIRONMENT" (WELL, ADVANCED FOR THE 128/64).
╘HIS RELEASE CONTAINS A NUMBER OF IMPROVEMENTS OVER THE PREVIOUS RELEASE.
- ╞ULL INPUT LINE EDITING FOR KEYBOARD INPUT.
- ┼VEN FASTER PRINTING TO SCREEN.
- ╬EW "NULL" DEVICE SUPPORTED (STANDARD DEVICE "N:").
- ╬EW APPLICATIONS: "WINDOW", "HELLO" (WELL...), "MKDIR", "RMDIR", "MORE",
AND "UNKAR".
- 80-COLUMN SCREEN SCREEN SAVER.
- ═INOR BUG FIXES, INCLUDING ANNOYING 40-COL SCREEN DISABLE LOCKUP BUG.
- ╞ULL CONFORMANCE TO THE SYSTEM INTERFACE DESCRIBED IN THE ┴├┼ ╨ROGRAMMER'S
╥EFERENCE ╟UIDE IN ├= ╚ACKING #7 NET MAGAZINE (BUT IMPROVED A LITTLE IN
PLACES AND THE "EXEC" SYSTEM CALL IS NOT IMPLEMENTED ("EXECSUB" IS)).
- ┼ACH AND EVERY SYSTEM CALL REVIEWED AND SPRUCED UP.
╘HIS DISTRIBUTION CONSISTS OF A BOATLOAD OF FILES. ╙YSTEM FILES:
ACE - THE KERNEL BOOTSTRAPPER; CAN BE RUN FROM EITHER 64 OR 128 MODE
ACE128 - THE KERNEL FOR THE 128
ACE64 - THE KERNEL FOR THE 64
CONFIG - THE CONFIGURATION INITIALIZER
SH - THE COMMAND SHELL
CONFIG.SYS - THE SYSTEM CONFIGURATION - THIS IS DATA NOT AN EXECUTABLE
CONFIG.EDIT - CONFIGURATION EDITOR PROGRAM (WRITTEN IN ┬┴╙╔├)
ACE-CHARSET - CHARACTER SET - YOU CAN REPLACE IT WITH YOUR OWN ╔┘╫
┴PPLICATION PROGRAMS (EXPLAINED IN ╙ECTION 6.3):
CP - COPY FILES
RM - REMOVE FILES (SCRATCH)
MV - RENAME FILES (NAMED FOR ╒NIX "MV"=="MOVE")
MKDIR - REMOVE AN EXISTING EMPTY DIRECTORY (FLAT NAME)
RMDIR - CREATE A NEW DIRECTORY (FLAT NAME)
XLS - DIRECTORY LISTER, DISPLAYS DATES
UUENCODE - ENCODE FILES INTO UUENCODED FORMAT
UUDECODE - DECODE FILES FROM UUENCODED FORMAT
BCODE - ENCODE FILES INTO ┬├╧─┼ FORMAT
UNBCODE - DECODE FILES FROM ┬├╧─┼ FORMAT
CRC32 - DISPLAY ├╥├-32 *┬* VALUES FOR FILES (NEW STANDARD)
CRC32A - DISPLAY ├╥├-32 *┴* VALUES FOR FILES (OLD STANDARD)
WC - COUNT WORDS, LINES, CHARACTERS OF FILES
GREP - SEARCH FOR A SUBSTRING IN FILES (FROM ╒NIX "GREP")
TR - TRANSLATE FROM ONE CHARACTER SET TO ANOTHER
SORT - SORT FILES
WRAP - WRAP LINES LONGER THAN 75 CHARACTERS
DATE - DISPLAY CURRENT DATE AND TIME
FORTY - SWITCH TO 40-COL SCREEN, SLOW MODE
EIGHTY - SWITCH TO 80-COL SCREEN, FAST MODE ON 128
READ - READ FILES
MEM - DISPLAY AVAILABLE DYNAMIC AND TRANSIENT PROGRAM AREA MEMORY
AS - ─┼═╧ ASSEMBLER: ONLY TOKENIZER IMPLEMENTED
VI - ─┼═╧ "┌ED" TEXT EDITOR: DISPLAYS SCREEN, LOADS AND PRINTS FILE
HELLO - DUMB LITTLE "HELLO WORLD" EXAMPLE PROGRAM
WINDOW - SET THE CURRENT WINDOW DIMENSIONS
MORE - FULL-SCREEN FILE DISPLAYER
UNKAR - ╦┴╥ (╦EVIN'S ┴╥CHIVER) TEXT-ONLY FILE DEARCHIVER
╘HESE BINARY PROGRAMS AVAILABLE IN A UUENCODED ARCHIVE FORMAT. ╘HE UUDECODE
PROGRAM INCLUDED WILL DECODE THIS FORMAT OF ARCHIVE, BUT THAT IS PROBABLY
OF NO USE TO YOU UNLESS YOU ARE ABLE TO ├ATCH 22. ┘OU MAY HAVE TO USE THE
UUDECODER ON YOUR ╒NIX SYSTEM OR USE "UUXFER" FOR THE ├64. ┘OU MAY HAVE TO
SPLIT THE UUARCHIVE UP INTO SEPARATE FILES FOR UUDECODING.
╬OTE THAT THE "ACE128" AND "ACE64" PROGRAMS ARE FUNCTIONALLY IDENTICAL, EXCEPT
THAT ONE IS SET UP FOR THE 128 AND THE OTHER FOR THE 64. ╘HUS, ALL OF THE
APPICATION BINARY PROGRAMS WILL WORK WITH EITHER "ACE128" OR "ACE64". ╠╧┴─
AND ╥╒╬ THE "ACE" PROGRAM AND IT WILL LOAD THE CORRECT "KERNEL" FOR YOUR
COMPUTER.
╘HE ┬UDDY ASSEMBLER SOURCE CODE FILES ARE NOT INCLUDED HERE, BUT ╔ WILL E-MAIL
THEM TO ANYONE WHO ASKS FOR THEM. ╘HEY ARE GETTING A BIT BULKY, ABOUT 347╦ OR
22,900 LINES. ╞OR PEOPLE WANTING A LITTLE TECHNICAL INFORMATION, HERE IS THE
MEMORY MAP OF ┴├┼; IT IS SUBJECT TO CHANGE AT MY WHIM:
$0002-$007F = APPLICATION ZERO-PAGE STORAGE (0.12╦)
$0080-$00FF = SYSTEM ZERO-PAGE STORAGE (0.13╦)
$0100-$01FF = PROCESSOR STACK (0.25╦)
$0200-$0EFF = SYSTEM STORAGE (3.25╦)
$0F00-$0FFF = KERNEL INTERFACE VARIABLES (0.25╦)
$1000-$12FF = SYSTEM STORAGE (0.75╦)
$1300-$1FFF = SHELL PROGRAM (3.25╦)
$2000-$27FF = CHARACTER SET (2╦)
$2800-$5FFF = ┴├┼ KERNEL AND DEVICE DRIVERS (14╦) - UNUSED SPACE FREE
$6000-$BFFF = APPLICATION AREA & STACK (24╦)
$C000-$FFFF = ╥╧═ AND ╔/╧, ╥┴═ (16╦) - FREE
------------------------------------------------------------------------------
2. ╒╙╔╬╟ ╘╚┼ ╙┘╙╘┼═
╫HEN ┴├┼ STARTS, IT LOADS AND EXECUTES THE COMMAND SHELL (AMONG OTHER THINGS),
GIVES YOU A PROMPT AND WAITS FOR YOU TO GIVE IT A COMMAND. ┴ COMMAND HAS THE
FOLLOWING FORMAT:
PROGRAMNAME ARG1 ARG2 ... ARG╬
╘HE PROGRAMNAME CAN BE ANY OF THE FOLLOWING BUILT-IN COMMANDS (COVERED IN
╙ECTION 6.1):
ECHO - PRINT THE GIVEN ARGUMENTS TO STDOUT
CLEAR - CLEAR THE SCREEN
CLS - SAME AS "CLEAR"
DIR - CLEAR THE SCREEN AND GIVE A LONG-FORM DIRECTORY LISTING
D - SAME AS "DIRECTORY", BUT NO CLEAR SCREEN
LS - GIVE A MULTI-COLUMN SHORT-FORM DIRECTORY LISTING
CLSL - COMBINATION OF "CLS" AND "LS"
CD - CHANGE THE CURRENT DEVICE/DIRECTORY
CAT - DISPLAY THE NAMED FILES TO STDOUT
EXIT - EXIT FROM THE COMMAND SHELL BACK TO ┬┴╙╔├
X - SAME AS "EXIT"
DOS - GIVE A ├OMMODORE DOS COMMAND TO THE CURRENT DEVICE (╧╨┼╬1,DV,15..)
@ - SAME AS "DOS"
PATH - SET THE PATH TO SEARCH FOR EXTERNAL PROGRAMS
SH - INVOKE THE SHELL AGAIN AS A SUB-SHELL
OR PROGRAMNAME CAN BE FOR ANY OF THE EXTERNAL PROGRAMS PROVIDED WITH THIS
DISTRIBUTION. ┘OU'LL HAVE TO FORGIVE MY PERSONAL TASTE IN COMMAND NAMES AND
ABBREVIATIONS (UNTIL THE "ALIAS" SHELL FEATURE IS IMPLEMENTED).
2.1. ╔╬╨╒╘/╧╒╘╨╒╘ ╥┼─╔╥┼├╘╔╧╬
╘HE THREE ╒NIX STANDARD FILES ARE SUPPORTED:
STDIN - WHERE THE DEFAULT INPUT COMES FROM (USUALLY THE KEYBOARD)
STDOUT - WHERE THE DEFAULT OUTPUT GOES TO (USUALLY THE SCREEN)
STDERR - WHERE ERROR MESSAGES ARE SENT TO (USUALLY THE SCREEN)
╘O TEMPORARALLY REDIRECT THESE STANDARD FILE STREAMS FOR THE EXECUTION OF A
COMMAND, YOU CAN USE THE FOLLOWING INCANTATIONS ON A COMMAND LINE:
<INFILE - REDIRECT STDIN - INPUT TAKEN FROM "INFILE"
>OUTFILE - REDIRECT STDOUT - OUTPUT PUT INTO FILE "OUTFILE"
>>OUTFILE - REDIRECT STDOUT - SAME AS ">" BUT THE OUTPUT IS APPENDED TO FILE
>&ERRFILE - REDIRECT STDERR - ERROR OUTPUT IS PUT INTO "ERRFILE"
>>&ERRFILE - REDIRECT STDERR - ERROR OUTPUT IS APPENDED TO FILE "ERRFILE"
─O NOT PUT A SPACE BETWEEN THE REDIRECTION SYMBOL(S) AND THE FILE NAME.
2.2. ╨┴╘╚╬┴═┼╙
╫HENEVER YOU SPECIFY A FILE, YOU USE A "PATHNAME". ╨ATHNAMES HAVE THE
FOLLOWING OPTIONAL PARTS:
[DEVICE:][RAMLINK-DIRECTORY:][FILENAME]
─EVICE NAMES ARE SET BY THE USER IN THE CONFIGURATION FILE, BUT THE FACTORY
DEFAULTS ARE:
"K:" - ├USTOM DEVICE DRIVER: THE KEYBOARD
"S:" - ├USTOM DEVICE DRIVER: THE SCREEN ("K:" AND "S:" ARE EXACTLY SYNONYMOUS)
"P:" - ├OMMODORE DEVICE #4 - THE PRINTER, WITH ╙EC┴DDR 7 - OUTPUT ONLY
"Q:" - ├OMMODORE DEVICE #4 - THE PRINTER, WITH ╙EC┴DDR 5 - TRANSPARENT MODE
"N:" - ├USTOM DEVICE DRIVER: "NULL" DEVICE
"A:" - ├OMMODORE DEVICE #8 - A DISK DRIVE - INPUT/OUTPUT
"B:" - ├OMMODORE DEVICE #9 - A DISK DRIVE - IF YOU HAVE >1 DRIVE
...
"J:" - ├OMMODORE DEVICE #17 - A DISK DRIVE
".:" - THE "CURRENT" DISK DEVICE
├═─ ╥┴═╠INK (OR ├═─ ╚ARD─RIVE) DIRECTORY NAMES HAVE THE FOLLOWING FORMATS:
"//DIR/:" - A SUBDIRECTORY OF THE ROOT DIRECTORY
"/DIR/:" - A SUBDIRECTORY OF THE CURRENT DIRECTORY
"4//DIR/DIR/ ... /DIR/:" - A SUB-PATH OF THE ROOT DIRECTORY OF PARTITION #4
"/DIR/DIR/ ... /DIR/:" - A SUB-PATH OF THE CURRENT DIRECTORY
┴ND FILENAMES HAVE THE USUAL ├OMMODORE FORMAT OF 1 TO 16 CHARACTERS.
╘HUS, THE FOLLOWING ARE VALID PATHNAMES FOR FILES:
K: - THE KEYBOARD FOR INPUT
P: - THE PRINTER FOR OUTPUT
B:FILE1 - "FILE1" ON DISK DEVICE #9
.:FILE1 - "FILE1" ON THE CURRENT DISK DEVICE
FILE1 - "FILE1" ON THE CURRENT DISK DEVICE
/DIR1/FILE1 - "FILE1" IN THE ╥AM╠INK SUBDIRECTORY "DIR1"
A://DIR1/DIR2/:FILE1 - "FILE1" IN THE ╥AM╠INK SUBDIR "//DIR1/DIR2", DEVICE #8
┴ND THE FOLLOWING ARE VALID PATHNAMES FOR DIRECTORIES:
A: - DISK DEVICE #8 CURRENT DIRECTORY
.: - CURRENT DISK DEVICE'S CURRENT DIRECTORY
.://DIR1/: - "DIR1" OFF THE ROOT DIRECTORY OF THE CURRENT ╥AM╠INK DEVICE
/DIR1/DIR2/: - SUBDIRECTORY "/DIR1/DIR2" OF THE CURRENT ╥AM╠INK DEVICE
╬OTE THAT A DIRECTORY NAME ALWAYS ENDS WITH A ":".
┘OU MAY APPEND A ",P" OR ",S" OR ",U" TO A FILENAME TO SPECIFY WHETHER A ╨╥╟,
╙┼╤, OR ╒╙╥ FILE SHOULD BE ACCESSED/CREATED. ┬Y DEFAULT, ┴├┼ WILL CREATE ╙┼╤
FILES.
┬╘╫, TO GENERATE AN ┼╧╞ FOR KEYBOARD INPUT, SIMPLY PRESS ├ONTROL-─. ╧NLY DO
THIS AT THE BEGINNING OF A BLANK LINE.
2.3. ├╧══┴╬─ ╙╚┼╠╠ ┴╥╟╒═┼╬╘╙
┴RGUMENTS THAT CONTAIN SPACES MUST BE PUT INTO QUOTES. ═ULTIPLE QUOTED
STRINGS CAN BE PLACED SIDE-BY-SIDE TO PRODUCE A LONGER STRING. ╘HE FOLLOWING
ARE EXAMPLES OF VALID COMMAND SHELL ARGUMENTS:
HELLO - HELLO
'HELLO' - HELLO
"HELLO THERE" - HELLO THERE
'HELLO THERE' - HELLO THERE
'SHE SAID, "HOW'"'S THAT"'"'' TO ME.' - SHE SAID, "HOW'S THAT" TO ME.
├OMMAND SHELL ARGUMENTS ARE SEPARATED BY SPACES OR TAB CHARACTERS.
2.4. ┼╪╘┼╥╬┴╠ ├╧══┴╬─ ╙┼┴╥├╚ ╨┴╘╚
╘HE "PATH" COMMAND SETS OR DISPLAYS THE CURRENT SEARCH PATHNAMES FOR EXTERNAL
PROGRAMS. ┬Y DEFAULT THE PATHS TO SEARCH ARE "A:" AND ".:". ╘HE PATH CONSISTS
OF MULTIPLE DIRECTORY NAMES TO BE CHECKED, IN ORDER, FOR EACH BINARY EXECUTABLE
OR SHELL SCRIPT THAT YOU GIVE THAT DOES NOT HAVE A PATHNAME PREFIX.
2.5. ╫╔╠─├┴╥─╙
╒NIX-STYLE WILDCARD EXPANSION IS SUPPORTED. ╫HEN YOU ENTER AN ARGUMENT WITH
AN ASTERISK IN THE FILENAME COMPONENT OF THE PATHNAME, THE COMMAND SHELL WILL
AUTOMATICALLY EXPAND THAT NAME INTO AN ARGUMENT FOR EACH FILE IN THE SPECIFIED
DIRECTORY THAT MATCHES THAT PATTERN. ╘HE EXPANDED ARGUMENTS ARE THEN PASSED
ONTO THE COMMAND YOU ARE INVOKING AS IF YOU HAD TYPED THEM ALL IN YOURSELF.
╞OR EXAMPLE:
┴╥╟╒═┼╬╘ ┼╪╨┴╬╙╔╧╬
-------- ---------
* FILE1 PROG1,P PROG2,P
CH* CHESS,P CHINESE_CHECKERS,P
*.BIN MAIN.BIN,P DATA.BIN ANAGRAM.BIN
A*N ANAGRAM.BIN AN ANOTHER_PLAN
B:A*.BIN B:MAIN.BIN,P B:DATA.BIN B:ANAGRAM.BIN
C://GAMES/:A*.BIN C://GAMES/:ACROBAT.BIN,P C://GAMES/:ACRODATA.BIN
┘OU'LL NOTE THAT PROGRAM FILES ARE EXPANDED TO INCLUDE A ",P". ╔F A PATTERN
DOES NOT EXPAND TO ANYTHING, AN ERROR MESSAGE IS DISPLAYED AND THE SHELL
COMMAND IS NOT EXECUTED. ┘OU'LL HAVE TO CURSOR-UP AND CHANGE THE COMMAND.
┘OUR FILENAME PATTERN CAN INCLUDE ONLY ONE ASTERISK (ANYWHERE IN THE NAME).
╙OME EXAMPLE USES OF WILDCARD EXPANSION WITH THE PROVIDED UTILITIES FOLLOW:
CP B:* A:
CP //GAMES/C64/:CHESS*.BIN SOMEFILE B://GAMES/:
WC *.ASM *.C
------------------------------------------------------------------------------
3. ╙┘╙╘┼═ ├╧╬╞╔╟╒╥┴╘╔╧╬
╘HE PROGRAM ENTITLED "CONFIG.EDIT" IS USED FOR EDITING THE SYSTEM
CONFIGURATION. ╘HE SYSTEM WILL BE CONFIGURED ACCORDING TO THE DATA IN THE
FILE "CONFIG.SYS" EVERY TIME IT STARTS UP. ╬OTE THAT "CONFIG.SYS" IS A
LOADABLE BINARY ╨╥╟ FILE; IT IS NOT IN TEXT FORMAT AND IS NOT MEANT TO BE
EDITED WITH A TEXT EDITOR.
╘HE FOLLOWING DATA ARE INCLUDED IN THE "CONFIG.SYS" FILE:
╧╞╞ ╙╔┌ ─┼╙├
--- --- ----
$00 128 DEVICE DESCRIPTORS, 32 ENTRIES OF FOUR BYTES EACH.
[╞OR EACH ENTRY, OFFSETS: 0=DEVICE DRIVER TYPE, 1=DEVICE ADDRESS,
2=SECONDARY ADDRESS, 3=FLAGS. ─ESCRIBED FURTHER BELOW.]
$80 1 RAMLINK DEVICE NUMBER
[╘HE KERNEL DEVICE NUMBER OF YOUR ╥┴═╠INK. ╘HE DEFAULT ╥╠ DEVICE
NUMBER IS 16.]
$81 1 RAMLINK LAST LOGICAL BANK ALLOWED TO USE PLUS ONE (NORM 255)
[╞OR THE ╥┴═╠INK MEMORY PARTITION (NEXT SECTION), THE MAXIMUM
NUMBER OF 64╦ CHUNKS THAT CAN BE USED FOR DYNAMIC MEMORY.]
$82 4 REAL-TIME CLOCK DEVICES TO CHECK [4], $╞╞=UNUSED
[╘HESE ARE THE KERNEL DEVICE NUMBERS OF ├═─ DISK DRIVE UNITS THAT
HAVE A BUILT-IN REAL-TIME CLOCK TO CHECK FOR THE CURRENT TIME. ╔F
THE FIRST ENTRY FAILS, THEN THE SECOND WILL BE TRIED, ETC., UNTIL
THE FOURTH ENTRY IS TRIED. ╔F ALL DEVICES FAIL TO RETURN A TIME,
THEN THE DEFAULT DATE IS USED (NEXT). ┴ VALUE OF $╞╞ IN AN ENTRY
MEANS TO TRY THE NEXT ENTRY. ┴├┼ USES THE ╘╧─ CLOCK OF ├╔┴#1 TO
KEEP TIME. ╘HE DATE IS STORED IN A REGULAR MEMORY FIELD AND IS NOT
ROLLED ON A 24-HOUR ╘╧─ CLOCK WRAP-AROUND.]
$86 8 DEFAULT DATE ┘┘:┘┘:══:──:╚╚:══:╙╙:╘╫
[╘HE DEFAULT DATE TO USE IF ATTEMPTS TO ACCESS THE CURRENT TIME FROM
├═─ DISK DEVICES FAIL. ╞ORMAT IS 24-HOUR ┬├─. ┴LL FOUR DIGITS OF
THE YEAR ARE GIVEN. ╘HE "╘╫" FIELD MEANS TENTHS OF SECONDS IN THE
HIGH NYBBLE AND THE DAY-OF-WEEK IN THE LOW NYBBLE. ╞OR DAYS OF THE
WEEK, 0 MEANS "UNKNOWN", 1 MEANS "╙UNDAY", ETC., AND 7 MEANS
"╙ATURDAY". ╘HE FACTORY-SET VALUE OF THIS FIELD IS 12AM, ╞RIDAY,
╩AN 1, 1993.]
$8┼ 1 SCREEN SAVER ACTIVATION TIME, IN MINUTES (NORM 10)
[╘HE SCREEN WILL GO BLACK WHEN THE SCREEN SAVER IS ACTIVATED, AFTER
A PERIOD WHERE YOU HAVE NOT PRESSED ANY KEY FOR THE SPECIFIED TIME,
UNTIL YOU PRESS A KEY (INCLUDING THE ANY OF THE SHIFT KEYS). ╔F
YOU PRESS ANY CHARACTER KEY, THAT KEY WILL APPEAR IN YOUR INPUT.
╬ORMAL PROCESSING WILL CONTINUE IN THE BACKGROUND, WHILE THE SCREEN
SAVER IS ACTIVE, INCLUDING PRINTING TO THE SCREEN. ╘HIS TIME IS IN
MINUTES. ┴ VALUE OF ZERO MEANS TO DISABLE THE SCREEN SAVER. ╘HE
SCREEN SAVER IS NOW ACTIVE FOR BOTH THE 40-COLUMN AND 80-COLUMN
DISPLAYS.]
$90 16 INITIAL CURRENT DIRECTORY STRING (DEFAULT "A:")
[╔MMEDIATELY AFTER BOOTING AND BEFORE CALLING THE SHELL, THE KERNEL
WILL DO A CHANGE DIRECTORY TO THE NULL-TERMINATED STRING GIVEN
HERE.]
$┴0 1 ├128 BANK1 START FREE PAGE (NORM $04)
[╘HIS FIELD AND THE NEXT DEFINE THE PAGES OF ╥┴═1 THAT ┴├┼ IS ALLOWED
TO USE. ╘HIS MUST INCLUDE AT LEAST ONE PAGE.]
$┴1 1 ├128 BANK1 LAST FREE PAGE PLUS ONE (NORM $FF)
$┴3 1 ├128 BANK0 LAST ALLOWED FREE PAGE PLUS ONE (NORM $FF)
[╘HIS IS THE HIGHEST PAGE, PLUS ONE, ON ╥┴═0 THAT ┴├┼ IS ALLOWED TO
USE. ┘OU CAN SET THIS TO PROTECT A PROGRAM THAT YOU WISH TO
ATTEMPT TO USE WITH ┴├┼ (GOOD LUCK). ╘HERE IS NO MINIMUM PAGE THAT
┴├┼ IS ALLOWED TO USE; IT TAKES WHATEVER IT WANTS BELOW $6000.]
$┴5 1 ├128 LAST INTERNAL BANK ALLOWED TO USE ABOVE 2, PLUS ONE (NORM 8)
[╞OR EXPANDED INTERNAL MEMORY (A LA ╘WIN├ITIES-128), THIS SETS THE
HIGH LIMIT ON THE BANKS THAT ┴├┼ IS ALLOWED TO USE. ┴ VALUE OF 2
MEANS THAT ┴├┼ IS NOT ALLOWED TO USE IT AT ALL. ╘HERE IS NO LOW
LIMIT ON THIS BECAUSE IT CAUSED TOO MANY PROGRAMMING PROBLEMS.]
$┴6 1 ├128 FIRST ╥┼╒ BANK ALLOWED TO USE (NORM 0)
[╘HIS AND THE NEXT FIELD DEFINE THE MINIMUM AND MAXIMUM (PLUS ONE)
╥┼╒ BANK NUMBERS THAT ┴├┼ IS ALLOWED TO USE. ╔ INCLUDED A MINUMUM
BECAUSE OF PLEAS ABOUT ┌ED HAVING A MINIMUM. ╔F YOU SET BOTH MIN
AND MAX TO $00, THEN ┴├┼ WILL LEAVE THE ╥┼╒ MEMORY ALONE.
╧THERWISE, ┴├┼ WILL AUTO-DETECT HOW MUCH YOU HAVE AND WILL MAKE USE
OF AS MUCH ╥┼╒ MEMORY AS IT CAN (NOTE THE DEFAULT MAX IS 255).]
$┴7 1 ├128 LAST ╥┼╒ BANK ALLOWED TO USE PLUS ONE (NORM 255)
$┴8 1 ├128 TOP PAGE OF ╘╨┴ (STACK) (NORM $C0)
[╘HIS DEFINES THAT PAGE (PLUS ONE) OF THE TOP OF THE APPLICATION
PROGRAM AREA (╘╨┴). ╘HE BOTTOM IS $6000, SO A TOP OF $├000 GIVES
APPS 24╦ TO PLAY AROUND IN. $├0 IS THE MAXIMUM VALUE THIS FIELD
CAN HAVE, SINCE THE ├OMMODORE ╦ERNAL MUST (FOR THIS RELEASE) STAY
IN CONTEXT WHENEVER ┴├┼ IS IN USE. ╘HE TOP OF THIS SPACE IS ALSO
USED AS THE "ARGUMENT STACK" FOR APPLICATIONS.]
$┬0 8 ├128 80-COL SCREEN COLOR PALETTE: TABLE OF EIGHT ╥╟┬╔ CODES.
[╘HIS TABLE GIVES THE PALETTE OF COLORS TO BE USED BY ├128 80-COL
APPLICATIONS. ╘HE MEANINGS OF THE VALUES STORED AT THE OFFSETS
ARE: 0=CHAR, 1=CURSOR, 2=STATUS, 3=SEPARATOR, 4=HIGHLIGHT, 5=ALERT,
6=BORDER, 7=SCREEN. ╘HE CHAR, BORDER, AND SCREEN COLORS ARE USED
WHEN THE SCREEN DRIVER IS INITIALIZED. ╘HE BORDER VALUE FOR THE
80-COL SCREEN IS CURRENTLY IGNORED. ╬OTE THAT ╥╟┬╔ CODES ARE USED,
EVEN FOR THE ╓╔├ CHIP (FOR CONSISTENCY). ╘HE FACTORY DEFAULTS FOR
CHAR, SCREEN, AND BORDER ARE LIGHT GREY ON BLACK FOR 80 AND LIGHT
GREEN ON DARK GREY WITH A MEDIUM GREY BORDER FOR THE 40 (PERHAPS A
BIT ICKY). ╘HE OTHER VALUES ARE CHOSEN ACCORDINGLY. ╘HE PALETTES
FOR THE OTHER DISPLAYS HAVE THE SAME STRUCTURE AS THIS ONE.]
$┬8 8 ├128 40-COL COLOR PALETTE
$├1 1 ├64 LAST ALLOWED PAGE FREE PLUS ONE (NORM $FF)
[╘HIS GIVES THE TOP PAGE, PLUS ONE, THAT ┴├┼ IS ALLOWED TO USE ON
THE 64. ─ON'T SET THIS LOWER THAN THE TOP OF THE ╘╨┴ AREA.]
$├2 1 ├64 FIRST ╥┼╒ BANK ALLOWED TO USE (NORM $00)
[╠IKE THE ├128 SETTINGS, YOU CAN SET THE USAGE FOR THE ╥┼╒ MEMORY.]
$├3 1 ├64 LAST ╥┼╒ BANK ALLOWED TO USE (NORM $FF)
$├5 1 ├64 END EXPANDED INTERNAL MEMORY BANKS PLUS ONE (NORM $04)
[╘HIS FIELD IS CURRENTLY IGNORED.]
$├6 1 ├64 TOP PAGE OF ╘╨┴ (STACK) (NORM $C0)
[╘OP OF THE ╘╨┴ FOR THE 64. ┘OU CAN SET THIS BETWEEN $61 AND $─0.]
$─0 8 ├64 80-COL COLOR PALETTE
[╞OR THE BITMAPPED HI-RES 80-COL SCREEN, WHICH IS NOT YET
IMPLEMENTED.]
$─8 8 ├64 40-COL COLOR PALETTE
$┼0 32 INITIAL SHELL PATH STRING (DEFAULT "A:", ".:")
[╘HE PATHS TO USE TO SEARCH FOR EXECUTABLE PROGRAMS. ┼ACH DIRECTORY
NAME IS A NULL-TERMINATED STRING, AND THE LIST OF PATHS IS
TERMINATED BY AN EMPTY STRING.]
╘HE OFFSETS FROM $00 TO $7╞ CONTAIN 32 FOUR-BYTE FIELDS, WHICH ARE USED TO
DEFINE THE DEVICES IN THE SYSTEM. ╘HESE FIELDS WILL CORRESPOND TO DEVICE
NAMES "@:", "┴:", "┬:", ..., "┌:", "[:", "\:", "]:", "^:", AND "_:" (FORGIVE
THE NON-LETTER DEVICE NAMES). ╘HE FOUR FIELDS WILL BE DEFINED AS FOLLOWS:
0 DEVICE DRIVER TYPE (0=╦ERNAL NON-DISK, 1=╦ERNAL DISK, 2=CONSOLE, 3=NULL)
1 DEVICE PRIMARY ADDRESS / WHATEVER
2 DEVICE SECONDARY ADDRESS / WHATEVER
3 FLAGS / WHATEVER ($80 FOR A DISK WILL MEANS THAT IT HAS A ├═─ ╥EAL-╘IME CLOCK)
╘HE FACTORY DEFAULTS ARE: DEVICES "A" TO "J" ARE ├OMMODORE DISK DEVICES 8 TO
17, RESPECTIVELY, "P" IS DEVICE NUMBER 4 WITH SECONDARY ADDRESS 7, "Q" IS
DEVICE NUMBER 4 WITH SECONDARY ADDRESS 5 (WHICH IS TRANSPARENT MODE WITH
MANY PRINTER INTERFACES, WITH WHICH YOU'D USE THE "TR" UTILITY TO TRANSLATE
FILES INTO ┴SCII-├R╠F FORMAT), DEVICES "K" AND "S" REFER TO THE CUSTOM
CONSOLE (SCREEN AND KEYBOARD) DRIVER, AND DEVICE "N" IS THE 'NULL' DEVICE.
╘O SPARE YOU THE AGONY OF EDITING THIS BINARY CONFIGURATION MANUALLY, THE
┬┴╙╔├ PROGRAM "CONFIG.EDIT" CAN BE USED INSTEAD. ╥UN IT FROM ┬┴╙╔├, NOT FROM
INSIDE OF ┴├┼. ╔N FACT, YOU SHOULD RUN THIS BEFORE RUNNING ┴├┼ THE FIRST TIME
TO SET UP THE CONFIGURATION.
╘HE PROGRAM PROVIDES A FULL-SCREEN INTERFACE. ═OVE THE CURSOR AMONG THE
FIELDS ON EACH PAGE AND AMONG THE PAGES (10 OF THEM) TO SET THE VALUES. ┴LL
VALUES ARE IN DECIMAL (EXCEPT THE STRINGS). ╘HEN SAVE THE NEW CONFIGURATION,
EXIT, AND RUN ┴├┼. ╔F YOU SCREW UP THE NEW "CONFIG.SYS", THE PREVIOUS ONE
WILL BE AVAILABLE IN "CONFIG.SYS.BAK".
------------------------------------------------------------------------------
4. ─┘╬┴═╔├ ═┼═╧╥┘
┴FTER YOU HAVE CONFIGURED ┴├┼ FOR YOUR SYSTEM, IF YOU HAVE A ╥┴═╠INK, YOU WILL
HAVE TO CONFIGURE IT FOR ┴├┼ IF YOU WANT TO USE ╥┴═╠INK ╥┴═ OR INDIRECT ╥┼╒
ACCESS. ╘HE WAY THAT ┴├┼ DETECTS THESE TYPES OF MEMORY IS VIA THE ╥╠-─╧╙
PARTITION TABLE. ╞OR ╥┴═╠INK ╥┴═, ┴├┼ WILL CHECK FOR PARTITION NUMBER 31
BEING A ╞OREIGN ═ODE (─IRECT ┴CCESS) PARTITION WITH THE NAME "RL-RAM". ╔F IT
IS, THEN ┴├┼ WILL GET THE INFORMATION FOR THAT PARTITION TO DETERMINE THE SIZE
AND START ADDRESS (IN ╥╠ MEMORY). ╔T WILL THEN CHECK THE LIMIT FOR USAGE OF
╥╠-╥┴═ IN THE "CONFIG.SYS" FILE, AND ADJUST THE SIZE IT CAN USE ACCORDINGLY,
BEFORE INITIALIZING THE MEMORY. ╘O SET UP THIS PARTITION ON YOUR ╥┴═╠INK IN
THE FIRST PLACE, REFER TO YOUR ╥┴═╠INK DOCUMENTATION AND USE THE TOOLS PROGRAM
PROVIDED WITH IT.
╒SING ╥┼╒ (╥AM ┼XPANSION ╒NIT) MEMORY WITH ┴├┼ IS PRETTY EASY; YOU JUST MAKE
SURE IT IS PLUGGED INTO THE COMPUTER WHEN ┴├┼ IS STARTED. ┴├┼ WILL AUTO-
DETECT THE SIZE OF THE ╥┼╒ AND THEN CHECK THE CONFIGURATION FOR LIMITIATIONS
ON ╥┼╒ USAGE.
╔F YOU HAVE YOUR ╥┼╒ PLUGGED INTO YOUR ╥┴═╠INK IN THE MEMORY PORT (RATHER THAN
THE PASS-THROUGH PORT), AND YOU HAVE THE ╬ORMAL/─IRECT SWITCH THROWN TO THE
╬ORMAL POSITION, THEN YOUR MACHINE CANNOT ACCESS ╥┼╒ MEMORY IN THE USUAL WAY.
╘HE ONLY WAY TO ACCESS IT IS TO GO THROUGH THE ╥┴═╠INK. ┴├┼ WILL LOOK FOR
PARTITION NUMBER 30 BEING ─IRECT ┴CCESS AND NAMED "INDIRECT-REU" FOR THIS
PURPOSE. ╔F YOUR ╬ORMAL/─IRECT SWITCH IS IN THE ─IRECT POSITION, THEN ┴├┼
WILL USE THE ╥┼╒ DIRECTLY AND WILL IGNORE THE "INDIRECT-REU" PARTITION. ─O
NOT CHANGE THE POSITION OF THE ╬ORMAL/─IRECT SWITCH WHILE ┴├┼ IS IN ACTION.
╘HE TRICKY PART HERE IS IN CONFIGURING YOUR ╥┴═╠INK. ┘OU HAVE TO MAKE SURE
THAT THE MEMORY ALLOCATED TO THE "INDIRECT-REU" PARTITON IS THE MEMORY OF THE
╥┼╒. ╥┴═╠INK MEMORY STARTS FROM $000000 AND GOES UP TO $╞╞╞╞╞╞. ╥┼╒ MEMORY
WILL BE AT THE VERY FRONT OF THIS MEMORY (FROM ADDRESS $000000), AND THE
INTERNAL ╥┴═╠INK MEMORY WILL FOLLOW IMMEDIATELY AFTER THIS. ╞OR EXAMPLE, ╔
HAVE A 512╦ ╥┼╒ AND AN 8 ═EG ╥┴═╠INK, SO MY ╥┼╒ MEMORY COVERS AT ╥╠ ADDRESSES
$000000-$07╞╞╞╞, AND MY INTERNAL ╥╠ MEMORY COVERS ╥╠ ADDRESSES
$080000-$87╞╞╞╞. ╫HEN PARTITIONING THE DEVICE, PARTITIONS ARE ASSIGNED MEMORY
FROM LOWER ADDRESSES TO HIGHER ADDRESSES. ╙O, STARTING WITH AN EMPTY ╥╠ (NO
PARTITIONS), YOU MUST CREATE THE "INDIRECT-REU" PARTITION FIRST, FOLLOWED BY
ANY ╥╠-─╧╙ PARTITIONS AND THE "RL-RAM" PARTITION. ┘OU MUST ANSO MAKE SURE
THAT THE "INDIRECT-REU" PARTITION IS THE SAME SIZE AS YOUR ╥┼╒. 512╦ IS 2048
BLOCKS. ┴ NOTE FOR DELETING ╥╠ PARTITIONS: DELETE THE ONES THAT WERE LAST
ALLOCATED FIRST.
┘OU HAVE THE OPTION OF INSTALLING OR NOT INSTALLING EITHER OF THESE
PARTITIONS. ╔F EITHER IS MISSING, ┴├┼ WILL SIMPLY WORK WITHOUT IT. ┘OU'LL
WANT TO BE CAREFUL ABOUT THROWING THE ─IRECT SWITCH IF YOU DON'T HAVE YOUR ╥┼╒
"PROTECTED" WITH AN "INDIRECT-REU" PARTITION. (WITH OTHER ╥┼╒ APPLICATIONS
ALSO). ╧NE NOTE ABOUT USING ╥┴═╠INK MEMORY: ┴├┼ CAN TRANSFER DATA FROM IT AT
A RATE OF 16 MICROSECONDS/BYTE (63,920 BYTES/SEC), BUT THE COST OF STARTING
EACH TRANSFER IS 1 MILLISECOND (WHICH IS ABSOLUTELY TERRIBLE). ├OMPARATIVELY,
AN ╥┼╒ WILL TRANSFER AT A RATE OF 1 MICROSECOND/BYTE (1 ═EG/SEC), WITH A SETUP
COST OF ABOUT 60 MICROSECONDS. ╙O, YOU'LL GET THE BEST PERFORMANCE OUT OF
YOUR ╥┼╒ BY ACCESSING IT DIRECTLY, RATHER THAN INDIRECTLY THROUGH A ╥┴═╠INK.
╞OR INTERNAL MEMORY, THE 64 HAS ONLY ONE 64╦ INTERNAL BANK, WHEREAS YOUR 128
CAN HAVE EITHER 2, 4, OR 8 (128╦, 256╦, OR 512╦). ╘HE INTERNAL 128 MEMORY
ABOVE 128╦ ARE ACCESSED ACCORDING TO THE ARTICLES IN ╘WIN├ITIES-128 ═AGAZINE.
╙INCE ╔ DON'T HAVE EXPANDED INTERNAL MEMORY FOR MY 128, ╔ HAVEN'T BEEN ABLE TO
TEST THE EXPANDED INTERNAL MEMORY CODE. ╚OPEFULLY, SOMEONE WILL LET ME KNOW
IF IT DOESN'T WORK. ╔F IT DOESN'T, THEN SET YOUR CONFIGURATION TO DISALLOW
THE USE OF THE EXPANDED INTERNAL MEMORY.
╫HEN ┴├┼ STARTS, IT DETERMINES THE SIZE OF INTERNAL AND ╥┼╒ MEMORY BY WRITING
SPECIAL VALUES IN THE SAME LOCATIONS OF EACH BANK AND LOOKING FOR READBACK
FAILURES OR WRAP-AROUNDS. ╚OWEVER, AFTER TESTING A BANK, THE ORIGINAL
CONTENTS OF THE TEST LOCATIONS ARE RESTORED. ╙O, THE TESTING PROCESS IS
COMPLETELY NON-DESTRUCTIVE.
------------------------------------------------------------------------------
5. ─┼╓╔├┼╙
5.1. ├╧══╧─╧╥┼ ├╚┴╥┴├╘┼╥ ─┼╓╔├┼╙
╘HESE ARE REGULAR ├OMMODORE CHARACTER-ORIENTED DEVICES, WHICH REALLY ONLY
INCLUDES THE PRINTER RIGHT NOW. ╘HE STANDARD ╦ERNAL CALLS ARE MADE FOR
ALL ╔/╧. ╘HESE DEVICES WILL BEHAVE THE SAME WAY THEY ALWAYS HAVE.
5.2. ├╧══╧─╧╥┼ ─╔╙╦ ─┼╓╔├┼╙
╥EGULAR ├OMMODORE DISK UNITS ARE ACCESSED IN THE SAME WAY AS CHARACTER-
ORIENTED ├OMMODORE DEVICES, EXCEPT THAT DISK DEVICES ALSO SUPPORT SPECIAL
OPERATIONS SUCH AS DIRECTORY LISTINGS. ╘HE STANDARD ╦ERNAL CALLS ARE
USED AND SO ARE THE STANDARD ├OMMODORE-─╧╙ INCANTATIONS FOR OPERATIONS
SUCH AS DELETING (SCRATCHING) A FILE. ┘OU CAN USE THE "DOS" COMMAND OF
THE COMMAND SHELL TO SEND SPECIAL ├OMMODORE-─╧╙ COMMANDS DIRECTLY TO THESE
DEVICES.
5.3. ├═─ ─╔╙╦ ─┼╓╔├┼╙
╞OR ├═─ DISK DEVICES WITH INTERNAL REAL-TIME CLOCKS, SUPPORT HAS BEEN ADDED
TO THE KERNEL TO REQUEST A "LONG-FORM" DIRECTORY LISTING, INCLUDING THE DATE
AND TIME OF LAST MODIFICATION OF ALL FILES. ╘HIS ALLOWS ┴├┼ TO PASS THIS
INFORMATION ONTO APPLICATION PROGRAMS THAT REQUEST A DIRECTORY LISTING FROM
THE ├═─ DEVICE. ╙PECIAL SUPPORT IS ALSO INCLUDED FOR INTERPRETING DIRECTORY
AND PATHNAMES. ╘HE REST OF ACCESSING ├═─ DISK DEVICES IS HANDLED EXACTLY
THE SAME AS FOR REGULAR ├OMMODORE DISK DEVICES.
5.4. ╙├╥┼┼╬
╘HE SCREEN HAS A CUSTOM DEVICE DRIVER FOR THE 40-COLUMN (╓╔├) SCREEN OF BOTH
THE ├128 AND ├64 AND THE 80-COLUMN (╓─├) SCREEN OF THE ├128. ╨LANS ALSO CALL
FOR A BITMAP-EUMULATED 80-COLUMN SCREEN FOR THE ├-64. ┬ECAUSE OF THE WAY
THAT THE SYSTEM HAS BEEN DESIGNED, NEW SCREEN DRIVERS JUST EASILY SLIP INTO
PLACE.
╘HE CUSTOM SCREEN DRIVER INCLUDES SUPPORT FOR THE BASIC TEXT OUTPUT
OPERATION, AS WELL AS SPECIAL FULL-SCREEN ACCESSING CALLS TO ALLOW FOR
THE SIMPLIFIED AND STANDARD IMPLEMENTATION OF FULL-SCREEN PROGRAMS, SUCH AS
A TEXT EDITOR. ╙UCH A PROGRAM WOULD BE ABLE TO WORK ON THE 40-COLUMN ├64
SCREEN AS WELL AS THE 80-COLUMN ├128 SCREEN, WITH NO MODIFICATION. ╘HE
├OMMODORE ╦ERNAL INCLUDES VERY LITTLE SUPPORT FOR FULL-SCREEN APPLICATIONS
(ONLY NUMEROUS CONTROL CHARACTER CODES).
╞OR THE REGULAR OUTPUT, ONLY THE SCREEN CHARACTERS AND NOT THE COLORS ARE
USED (NORMALLY), WHICH ALLOWS SCROLLING TO BE TWICE AS FAST. ╧UTPUTING
CHARACTERS IS ALSO FASTER BECAUSE FEWER CONROL CHARACTERS ARE SUPPORTED,
NO TRANSLATIONS BETWEEN ╨┼╘╙├╔╔ AND SCREEN CODES NEEDS TO TAKE PLACE, AND
OPERATIONS ARE OPTIMIZED FOR SPEED (RATHER THAN ╥╧═ SIZE). ╘HE DISPLAY
CHARACTER SET HAS BEEN REARRANGED TO CORRESPOND TO THE ╨┼╘╙├╔╔ CHARACTER
CODES, EXCEPT FOR THE "├OMMODORE" CHARACTERS. ╘HE GRAPHICS CHARACTERS HAVE
BEEN RE-THOUGHT FOR APPLICATIONS. ╘HE SCREEN DRIVER ALSO INCLUDES BASIC
SUPPORT FOR USER-WINDOWS, WHICH WILL BE TAKEN ADVANTAGE OF IN FUTURE
APPLICATIONS.
┘OU WILL NOTICE, ESPECIALLY ON THE 80-COL ├128 SCREEN, THAT OUTPUT IS NOW
CONSIDERABLY FASTER THAN IT WAS IN RELEASE #8 (WHICH USED THE KERNEL) AND
EVEN FASTER THAN RELEASE #9 (WHICH USED THE CUSTOM DRIVER). ╔ STILL HAVE
ONE MORE TRICK UP MY SLEAVE TO MAKE IT EVEN FASTER, WHICH WILL BE
IMPLEMENTED WHEN THE SOFT-80 SCREEN GETS IMPLEMENTED FOR THE 64 (IT WILL
NEED THIS TRICK: "PRESCROLLING").